package com.dc.designPattern._21_strategy.extend.extend4;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * Description: 策略枚举实现_计算器
 * @author: gdc
 * @date: 2021/6/29
 * @version 1.0
 */
@AllArgsConstructor
@Getter
public enum Calculator {

    /**
     * 计算...
     */
    ADD("+"){
        @Override
        protected int exec(int a, int b) {
            return a + b;
        }
    },
    SUB("-"){
        @Override
        protected int exec(int a, int b) {
            return a - b;
        }
    };

    /**
     * 执行方法
     * @param a             参数A
     * @param b             参数B
     * @return              处理结果
     */
    protected abstract int exec(int a, int b);

    /**
     * 符号
     */
    private String symbol;

}
